package com.kgc.ssm.service;

import com.kgc.ssm.entity.*;
import com.kgc.ssm.entity.dto.Result;

import java.util.List;
import java.util.Map;

public interface PurchaseService {

    /**
     * 查询所有数据
     * @return
     */
    List<Stock> findAll();

    /**
     * 多表连接查询所有数据
     * @return
     */
    List<Stock> findAll2();

    /**
     * 根据id查询所有数据
     * @return
     */
    Map<String,Object> findById(Integer id);

    /**
     * 根据获取到的数据更新表
     * @param param
     * @return
     */
    int updateAll(Map<String,Object> param);

    /**
     * 表连接查询 查询QUOTE和ENQUIRE表的所有数据
     * @return 返回一个list集合
     */
    List<Map<String,Object>> getAllList();

    /**
     * 表连接删除 删除QUOTE和ENQUIRE表的数据，根据id删除
     * @param id
     * @return
     */
    int DeleteById(Integer id);

    /**
     * 根据id查询QUOTE和ENQUIRE表的所有对应数据
     * @return
     */
    List<Map<String,Object>> selectAllQE(Integer id);

    /**
     * 根据id查询QUOTE表的所有对应数据
     * @param id
     * @return
     */
    List<Map<String,Object>> selectQuoted(Integer id);

    /**
     * 根据获取到的ENQUIRE的id  查询Quote表的所有相关的数据
     * @return
     */
    List<Map<String,Object>> findAllQuote(Integer id);

    /**
     *  表连接查询 Quote和 Quote_Detail表的所有数据
     * @return
     */
    List<Map<String,Object>> selectAllQD(Integer id);

    /**
     * 根据获取到的ID查询ENQUIRE表对应的所有数据
     * @return
     */
    List<Map<String,Object>> findAllQE(Integer id);

    /**
     * 根据QUOTE的id查询ORDERS表对应的所有数据
     * @param id
     * @return
     */
    List<Map<String,Object>> selectByIdOP(Integer id);

    /**
     * 根据id查询ENQUIRE表对应的所有数据
     * @param id
     * @return
     */
    List<Enquire> selectByIdEnquire(Integer id);

    /**
     * 根据id更新ENQUIRE表的数据
     * @param params
     * @return
     */
    int updateEnquire(Map<String,Object> params);

    /**
     * 根据id更新ORDERS表的数据
     * @param params
     * @return
     */
    int updateOrder(Map<String,Object> params);

    /**
     * 查询所有CONTRACT表的数据
     * @return
     */
    List<Contract> selectAllContract();

    /**
     * 查询所有CONTRACT_APPLY表的数据
     * @return
     */
    List<ContractApply> selectAllContractApply();

    /**
     * 表连接查询 CONTRACT_APPLY和ENQUIRE表的所有数据
     * @return
     */
    List<Map<String,Object>> selectAllAppEnquire();

    /**
     * 根据ENQUIRE_NUM查询CONTRACT_APPLY表对应的所有数据
     * @return
     */
    Enquire selectByName(String enquireNum);

    /**
     * 根据CONT_ID查询CONTRACT_Detail表对应的所有数据
     * @param id
     * @return
     */
    List<ContractDetail> selectByContIdList(Integer id);
}
